﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using CapaNegocio;
using System.Collections.Generic;
using CapaDeEntidades;

namespace Biblioteca
{
    public partial class RegistrarPrestamo : System.Web.UI.Page
    {
        public object ListaDeLibros
        {
            get { return Session["ListaLibros"]; }
            set { Session["ListaLibros"] = value; }
        }


        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ListaDeLibros = Controladora.DevolverCatalogoLibros();
                dtLibros.DataSource = Controladora.VerCatalogoLibros();
                SocioLogueado = (Socio)Session["Socio"];
                Socio socio = Controladora.ConsultarDatosSocio("admin");
                SocioLogueado = socio;
                lblNumeroSocio.Text = socio.Codigo.ToString();
                lblNombre.Text = socio.NombreApellido.ToString();
                ListaDeLibros = Controladora.DevolverCatalogoLibros();
                dtLibros.DataSource = Controladora.VerCatalogoLibros();
                dtLibros.DataBind();
                this.PreInit += new EventHandler(Page_PreInit);
            }
        }

        public object SocioLogueado
        {
            get { return Session["Socio"]; }
            set { Session["Socio"] = value; }
        }

        public object indexSelectedRow
        {
            get { return Session["indexSelectedRow"]; }
            set { Session["indexSelectedRow"] = value; }
        }

        void Page_PreInit(object sender, EventArgs e)
        {
            SocioLogueado = (Socio)Session["Socio"];
            Socio socio = (Socio)SocioLogueado;

            if (socio.Usuario == "admin")
                MasterPageFile = "~/MasterPageAdministrador.Master";
            else
                MasterPageFile = "~/MasterMenu.Master";
        }


        protected void txtBuscarLibro_TextChanged(object sender, EventArgs e)
        {
            if (txtBuscarLibro.Text == "")
            {
                dtLibros.DataSource = Controladora.DevolverCatalogoLibros();
            }
            else
            {
                IList<Libro> lista = (IList<Libro>)ListaDeLibros;
                var query = from p in (IList<Libro>)lista where p.Titulo.Contains(txtBuscarLibro.Text) select p;
                dtLibros.DataSource = (IList<Libro>)query;
            }
        }

        protected void dtLibros_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (indexSelectedRow != null)
            {
                int index = Convert.ToInt32(indexSelectedRow.ToString());

                GridViewRow row = dtLibros.Rows[index];

                Libro libro = new Libro();

                libro.IdLibro = Convert.ToInt32(dtLibros.Rows[index].Cells[1].Text);
                libro.Isbn = Convert.ToInt32(dtLibros.Rows[index].Cells[4].Text);
                libro.Autor = dtLibros.Rows[index].Cells[3].Text;
                libro.Titulo = dtLibros.Rows[index].Cells[2].Text;
                libro.CantEj = Convert.ToInt32(dtLibros.Rows[index].Cells[5].Text);


                lblIsbn.Text = libro.Isbn.ToString();
                lblAutor.Text = libro.Autor.ToString();
                lblTitulo.Text = libro.Titulo.ToString();
                lblcodigo.Text = libro.IdLibro.ToString();

                if (Controladora.consultarDisponibilidadLibroPrestamo(libro.IdLibro, libro.CantEj))

                    lblDisponibilidad.Text = "Disponible";
                else
                    lblDisponibilidad.Text = "No Disponible";

            }

        }

        protected void btnRegistrar_Click(object sender, EventArgs e)
        {
            if (lblNumeroSocio.Text != "" && lblcodigo.Text != "")
            {
                if (lblDisponibilidad.Text == "Disponible")
                {
                    if (Controladora.GenerarPrestamo(DateTime.Now, (Convert.ToInt32(lblcodigo.Text)), (Convert.ToInt32(lblNumeroSocio.Text))))
                        ScriptManager.RegisterStartupScript(this, this.GetType(), "Registracion exitosa", "alert(' La registracion ha sido exitosa ');", true);
                    else
                        ScriptManager.RegisterStartupScript(this, this.GetType(), "Error Registracion", "alert(' Ha ocurrido un error en la registracion, por favor vuelva a intentarlo mas tarde');", true);
                }
                else
                    ScriptManager.RegisterStartupScript(this, this.GetType(), "Falta de disponibilidad", "alert(' El libro no se encuentra disponible para realizar el  prestamo, por favor intente desde el menu reservas');", true);
            }
        }


        protected void dtLibros_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Select")
            {
                // Se obtiene indice de la row seleccionada

                int index = Convert.ToInt32(e.CommandArgument);
                indexSelectedRow = index;


            }
        }



    }
}
